#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2023/11/28 20:51
# @Author  : FuKai ZHANG
# @File    : mouse_action.py
# @Description :鼠标操作，右键  悬浮 等
from selenium.webdriver.common.action_chains import ActionChains

"""2、selenium工具中全局鼠标操作语法如下：

第1步：初始化ActionChians类（动作链条）： actions = ActionChains(driver)

第2步：找到要操作的元素： find_element

第3步：调用鼠标操作方法： actions.move_to_element(element)

第4步：执行鼠标操作方法： actions.perform()
"""

"""
ActionChains 类常用方法
1、click_and_hold(on_element=None) ：点击鼠标左键，不松开

2、context_click(on_element=None) ：点击鼠标右键

说明：对于点击鼠标右键，如果弹出的是浏览器默认的菜单，Selenium没有提供操作菜单选项的方法； 如果是自定义的右键菜单，则可以通过元素定位来操作菜单中的选项。

3、double_click(on_element=None) ：双击鼠标左键

4、drag_and_drop(source, target) ：拖拽到某个元素然后松开
5. reset_actions() ：清除已在队列中的鼠标操作命令

"""


class MouseActions(object):
    def __init__(self, driver):
        self.actions = ActionChains(driver)

    pass

    # 写一个鼠标悬停到元素的函数
    def mouse_hover(self, element):
        self.actions.move_to_element(element).perform()

    # 鼠标右键单击
    def mouse_right_click(self, element):
        self.actions.context_click(element).perform()